package com.smartStatus.admin.mapper;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.smartStatus.api.entity.SysMenu;
import com.smartStatus.api.entity.SysMenuDetails;
import com.smartStatus.api.vo.SysMenuVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PathVariable;

import javax.swing.text.StyledEditorKit;
import java.util.List;

/**
 * @ClassName : SysMenuMapper
 * @Author : lby
 * @Date: 2020/12/8 11:02
 * @Description :
 */
@Mapper
public interface SysMenuMapper extends BaseMapper<SysMenu> {

    /**
     * @return
     */
    List<SysMenu> menuList();

    /**
     * @return
     */
    List<SysMenuVo> childrenList(SysMenu sysMenu);

    /**
     * 分页数据
     */

    IPage<SysMenu> pageList(Page<SysMenu> page, QueryWrapper<SysMenu> queryWrapper, @Param("sysMenu") SysMenu sysMenu);

    /**
     * 菜单添加
     */
    Boolean saveMenus(SysMenu sysMenu);

    /**
     * 菜单修改
     */
    Boolean editMenu(SysMenu sysMenu);

    /**
     * 菜单删除
     */
    Boolean menuDel(SysMenu sysMenu);

    /**
     * 查询本菜单下的子菜单
     */
    List<SysMenuDetails> getSubMenus(SysMenuVo sysMenuVo);

    /**
     * 获取当前节点的父节点
     */
    Integer getParentId(Integer subId);

    /**
     * 获取菜单列表
     * @param idList
     * @return
     */
    List<SysMenuVo> getMenuList(@Param("idList") List<Integer> idList);

    /**
     * 获取角色对应菜单数据
     * @param roleId
     * @return
     */
    List<SysMenuVo> getMenuIdList(@Param("roleId") String roleId);


    /**
     * 批量取消权限选中关系
     * @param roleId
     * @return
     */
    Boolean batchClearPermission(@Param("roleId") String roleId);



    List<SysMenuVo>getMenuListTree(@Param("parentId") String parentId,@Param("idList") List<Integer> idList);
}
